package cn.iocoder.yudao.module.api.ad.effect;

import cn.iocoder.yudao.module.api.ad.effect.enums.AdEffectSceneEnum;
import cn.iocoder.yudao.module.api.ad.effect.enums.AdEffectTypeEnum;

import java.util.Set;

/**
 * <pre>
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 *  这里是文件说明
 * OOoO0OOoO0OOOooo0oOOOO0OOOOO0oooOO0ooOOO0Ooooo0OOOOo0ooooO0OOooo0Ooooo0OOOOO
 * </pre>
 *
 * @author 山野羡民（1032694760@qq.com）
 * @since 2025/03/04
 */
public interface AdEffectRecordApi {

    /**
     * 创建广告效果记录
     *
     * @param userId     用户编号
     * @param scene      场景
     * @param type       类型
     * @param planId     计划编号
     * @param duration   持续时间
     * @param spendPrice 计费金额
     *
     * @return 广告效果记录编号，未创建成功者返回{@code null}
     */
    Long createIfNecessary(Long userId, AdEffectSceneEnum scene, AdEffectTypeEnum type, Long planId, Integer duration, Integer spendPrice);

    /**
     * 获取今日已完成的广告投放计划编号集合
     *
     * @param userId     用户编号
     * @return 已完成的广告投放计划编号集合
     */
    Set<Long> getTodayCompletePlanIds(Long userId);

}
